﻿
using JTC.Genetics._Interfaces;
using JTC.Genetics.Replication;
using System;

namespace JTC.Genetics._Abstract
{
    public abstract class CellBase :
        ICellular
    {
        public CellBase()
        {
        }

        #region ICellular Members

        public ICellular Parent { get; set; }

        private Cytoskeleton _cytoskeleton;
        public Cytoskeleton Cytoskeleton
        {
            get
            {
                if (this._cytoskeleton == null)
                    this._cytoskeleton = new Cytoskeleton();
                return this._cytoskeleton;
            }
        }

        private Mitochondria _mitochondria;
        public Mitochondria Mitochondria
        {
            get
            {
                if (this._mitochondria == null)
                    this._mitochondria = new Mitochondria();

                return this._mitochondria;
            }
        }

        #endregion

        protected ICellular Copy()
        {
            return this;
        }
    }
}
